package com.atguigu.tingshu.search.api;

import com.atguigu.tingshu.common.result.Result;
import com.atguigu.tingshu.search.service.ItemService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Tag(name = "专辑详情管理")
@RestController
@RequestMapping("api/search/albumInfo")
@SuppressWarnings({"unchecked", "rawtypes"})
public class itemApiController {

    @Autowired
    private ItemService itemService;

    // 专辑上架到ES
    @PostMapping("/albumOnSale/{albumId}")
    @Operation(summary = "专辑上架")
    public Result albumOnSale(@PathVariable Long albumId) {
        itemService.albumOnSale(albumId);
        return Result.ok();
    }

    // 专辑下架
    @DeleteMapping("/albumOffSale/{albumId}")
    @Operation(summary = "专辑下架")
    public Result albumOffSale(@PathVariable Long albumId) {
        itemService.albumOffSale(albumId);
        return Result.ok();
    }

    // 批量上架专辑到ES（定时从数据库中将所有的专辑查询到 然后同步给es）
    @PostMapping("/batchAlbumOnSale")
    @Operation(summary = "批量上架专辑到ES")
    public Result batchAlbumOnSale() {
        for (int i = 1; i < 1577; i++) {
            itemService.albumOnSale((long) i);
        }
        return Result.ok();
    }

    // 批量下架专辑到ES（定时从数据库中将所有的专辑查询到 然后同步给es）
    @DeleteMapping("/batchAlbumOffSale")
    @Operation(summary = "批量下架专辑到ES")
    public Result batchAlbumOffSale() {
        itemService.batchAlbumOffSale();
        return Result.ok();
    }


    @PostMapping("/preRankingToCache")
    @Operation(summary = "排行榜预热ES中的数据到缓存")
    public Result preRankingToCache(){
        itemService.preRankingToCache();
        return Result.ok();
    }


}

